1. Field of the Invention
This invention generally relates to networked-device communications and, more particularly, to a system and method for efficient reporting errors in a network environment.
2. Description of the Related Art
A local area network (LAN) of connected devices may span over the floor of a building, a group of buildings, or may even be connected worldwide. Various hardware interconnections and network protocols may be used. In a small LAN, each user performs the management function of exchanging, adding, or removing devices, installing software, and troubleshooting. However, in a large-scale LAN, a more complicated form of management is required. As in a small LAN, devices still need to be installed or removed, and software updated. A typical LAN may include an Ethernet interface, connected personal computers (PCs), printers, a file server to manage file access, a print server to manage the connected printers, and other peripheral devices. A wide area network (WAN) is an aggregate of LANs connected via a high-speed digital line.
Applications built using the Microsoft component object model (COM) technology rely on the error information provided by the system to supply a user with information concerning any errors that has occurred during a COM interface method call. Unfortunately, COM only permits a single error message to be generated. That is, when a client makes a system call to set the error information, any previous error information is overwritten. A typical COM method call may involve other objects, which in turn make method calls, to implement a particular function. If one of these components (objects) fails, it typically sends error information. Each error message overwrites the previous error message. Thus, only the error message associated with the last component in the chain of components survives. If there is more than one component failure, the information associated with the initially recorded errors is lost. This last-recorded error procedure may lead to insufficient error information being returned from a method call. As a result, it may be difficult for a user to completely identify a problem and resolve it.
A network may connect hardware devices and software products made by a diverse group of manufacturers. For example, an application built using a software development kit (SDK) developed by third-party manufacturers may typically make a call to the SDK to accomplish a printer task such as processing a scanned document received from the scanner. The designers of the SDK would typically like to document all the possible errors that a typical call returns, in case the method fails. A typical SDK method usually uses the available resources, such as system API and any other third-party developed SDKs to accomplish the task. Each of these resources has its own list of error codes returned when such error occurs. It is difficult for the SDK developers to document and manage all possible errors.
OLEDB, an SDK from Microsoft for working with databases, accumulates the error information during a method call, without erasing any previously recorded errors. This permits a user or application developers to iterate through the errors. However, the OLEDB SDK is limited to a very narrow range of functions, and does not extend to architectures. That is, OLEDB SDK does not provide a way for OLEDB to used or extended for use with other SDKs. For example, when reporting an error, it may be desirable for an exemplary SDK to add some custom fields and attributes to the error message. This is not possible with the OLEDB, because the format it very rigid.
It would be advantageous if an SDK existed that permitted third-party component developers to accumulated error augments when executing an object-oriented application.
It would be advantageous if an architecture existed that permitted all occurring errors to be captured during an application programming interface (API) call in a convenient format, to help application developers and end users quickly resolve the problems.